﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DeltaFlex.Data;
using System.Data;
using Taula = DeltaFlex.Negoci.ConsTaules.MaquinaCartoner;


namespace DeltaFlex.Negoci
{
    public class MaquinaCartoner
    {
        #region Variables
        private int _idMaquinaCartoner;
        private Client _client;
        private string _nomMaquina;
        private string _deflaccioMaquina;
        private string _calibreMaquina;
        private string _urlFitxaMaquina;
        #endregion

        #region Atributs
        public int IdMaquinaCartoner
        {
            get { return _idMaquinaCartoner; }
        }

        public Client Client
        {
            get { return _client; }
            set { _client = value; }
        }
               
        public string NomMaquina
        {
            get { return _nomMaquina; }
            set { _nomMaquina = value; }
        }

        public string DeflaccioMaquina
        {
            get { return _deflaccioMaquina; }
            set { _deflaccioMaquina = value; }
        }

        public string CalibreMaquina
        {
            get { return _calibreMaquina; }
            set { _calibreMaquina = value; }
        }

        public string UrlFitxaMaquina
        {
            get { return _urlFitxaMaquina; }
            set { _urlFitxaMaquina = value; }
        }
        #endregion

        #region Insertar
        public static int InsertarMaquina(int idClient, string nomMaquina, string deflaccio, string calibre, string urlFitxaMaquina)
        {
            try
            {
                return Data.MaquinaCartoner.InsertarMaquina(idClient, nomMaquina, deflaccio, calibre, urlFitxaMaquina);
            }
            catch { throw; }
        }
        #endregion

        #region Selects
        public static List<MaquinaCartoner> CercarMaquinaByIdClient(int idClient)
        {
            List<MaquinaCartoner> lstMaquina = new List<MaquinaCartoner>();
            IDataReader reader = null;

            try
            {
                reader = Data.MaquinaCartoner.LlistaMaquinaByIdClient(idClient);

                while (reader.Read())
                {
                    lstMaquina.Add(MapEntityFromDataReader(reader));
                }
            }
            catch (Exception) {throw;}
            finally
            {
                if (reader != null) reader.Close();
            }
            return lstMaquina;
        }

        public static List<MaquinaCartoner> CercarMaquinaByIdMaquina(int idMaquina)
        {
            List<MaquinaCartoner> lstMaquina = new List<MaquinaCartoner>();
            IDataReader reader = null;

            try
            {
                reader = Data.MaquinaCartoner.LlistaMaquinaByIdMaquina(idMaquina);

                while (reader.Read())
                {
                    lstMaquina.Add(MapEntityFromDataReader(reader));
                }
            }
            catch (Exception) { throw; }
            finally
            {
                if (reader != null) reader.Close();
            }
            return lstMaquina;
        }
        #endregion

        #region Mapeig
        public static MaquinaCartoner MapEntityFromDataReader(IDataReader record)
        {
            MaquinaCartoner maquina = new MaquinaCartoner();

            MemberAllocation.Allocate(record, Taula.COLUMNA_IDMAQUINACARTONER, ref maquina._idMaquinaCartoner);
            maquina._client = Client.MapEntityFromId(record);
            MemberAllocation.Allocate(record, Taula.COLUMNA_NOMMAQUINA, ref maquina._nomMaquina);
            MemberAllocation.Allocate(record, Taula.COLUMNA_DEFLACCIOMAQUINA, ref maquina._deflaccioMaquina);
            MemberAllocation.Allocate(record, Taula.COLUMNA_CALIBREMAQUINA, ref maquina._calibreMaquina);
            MemberAllocation.Allocate(record, Taula.COLUMNA_URLFITXAMAQUINA, ref maquina._urlFitxaMaquina);

            return maquina;
        }
        #endregion

    }
}
